#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
int n;
bool prime[40];
bool vis[25];
int res[25];
int a[25];
void init(){
    prime[2]=prime[3]=prime[5]=prime[7]=prime[11]=prime[13]=prime[17]=prime[19]=prime[23]=prime[29]=prime[31]=prime[37]=true;
    res[0]=1;
    for(int i=1;i<=n;i++){
        a[i]=i;
    }
    a[n+1]=1;
}
//搜到第几个数
void dfs(int t,int num){
    //要考虑最后一个数和1
    if(num==n && prime[t+1]){
        for(int i=0;i<n-1;i++){
            printf("%d ",res[i]);
        }
        printf("%d\n",res[n-1]);
    }
    vis[t]=true;
    for(int i=1;i<=n+1;i++){
        if(vis[a[i]]){
            continue;
        }
        else{
            if(prime[a[i]+t]){
                res[num++]=a[i];
                dfs(a[i],num);
                vis[a[i]]=false;
                num--;
            }
        }
    }
}
int main(void){
    int c=1;
    while(~scanf("%d",&n)){
        init();
        printf("Case %d:\n",c++);
        dfs(1,1);
        printf("\n");
    }
    return 0;
}
